package com.ysu.shop.pojo;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableName;
import com.ysu.shop.pojo.BasePojo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author 霍京
 * @since 2021-3-03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("orderdetail")
public class Orderdetail extends BasePojo {

    private static final long serialVersionUID = 1L;

    /**
     * 订单编号: 系统的当前时间(Long)+用户id
     */
    @TableField("order_no")
    private String orderNo;

    /**
     * 用户id
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 商品id
     */
    @TableField("product_id")
    private Integer productId;

    /**
     * 商品名称
     */
    @TableField("product_name")
    private String productName;

    /**
     * 商品图片地址
     */
    @TableField("product_image")
    private String productImage;

    /**
     * 下单时的商品的价格
     */
    @TableField("current_unit_price")
    private BigDecimal currentUnitPrice;

    /**
     * 购买数量
     */
    @TableField("quantity")
    private Integer quantity;

    /**
     * 购买该商品的总价格
     */
    @TableField("total_price")
    private BigDecimal totalPrice;

    /**
     * 发货时间
     */
    @TableField("send_time")
    private LocalDateTime sendTime;

    /**
     * 收货时间
     */
    @TableField("receive_time")
    private LocalDateTime receiveTime;

    /**
     * 当前订单状态 0表示未付款 1表示已取消 2表示已付款 3表示已发货 4表示已收货
     */
    @TableField("status")
    private String status;

    public void addOrderItem(Shoppingcart cart){
        this.productId = cart.getProductId();
        this.productName = cart.getProductName();
        this.productImage = cart.getImage();
        this.currentUnitPrice = cart.getProductPrice();
        this.quantity = cart.getQuantity();
        this.totalPrice = this.currentUnitPrice.multiply(BigDecimal.valueOf(this.quantity));
    }

}
